﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MvcCaja.Core;
using Chilis.Caja.Data.Models;

namespace Chilis.Caja.Web.Controllers
{
    public class ResumenController : Controller
    {
        //
        // GET: /Resumen/

        public ActionResult Index()
        {
            return RedirectToAction("Caja");
        }

        public ActionResult Caja()
        {
            ResumenService resumenService = new ResumenService();

            string caja = Session["Caja"].ToString();

            var cajeros = resumenService.obtenerCajeros();
            var turnos = resumenService.obtenerTurnos();
            var movCaja = resumenService.obtenerMovimientosCaja(caja);

            ViewBag.Cajeros = new SelectList(cajeros, "IdCajero", "IdCajero");
            ViewBag.Turnos = new SelectList(turnos, "IdTurno", "IdTurno");         

            return View(movCaja);
        }     

        public ActionResult ObtenerMovimientos(string cajero, string turno)
        {
            List<MovimientoCaja> movCaja = ObtenerTablaMovimientosCaja(cajero, turno);         
            return PartialView("TablaMovCaja", movCaja);        
        }

        public ActionResult ImprimirMovimientosCaja(string cajero, string turno)
        {
            List<MovimientoCaja> movCaja = ObtenerTablaMovimientosCaja(cajero, turno);
            return View(movCaja);
        }

        public List<MovimientoCaja> ObtenerTablaMovimientosCaja(string cajero, string turno)
        {
            ResumenService resumenService = new ResumenService();
            List<MovimientoCaja> movCaja = new List<MovimientoCaja>();

            string caja = Session["Caja"].ToString();

            if (string.IsNullOrEmpty(cajero) && string.IsNullOrEmpty(turno))
            {
                movCaja = resumenService.obtenerMovimientosCaja(caja);
            }
            else
            {

                if (string.IsNullOrEmpty(cajero))
                {
                    movCaja = resumenService.obtenerMovimientosCajaPorTurno(caja, turno);
                }

                if (string.IsNullOrEmpty(turno))
                {
                    movCaja = resumenService.obtenerMovimientosCajaPorCajero(caja, cajero);
                }

                if (!string.IsNullOrEmpty(cajero) && !string.IsNullOrEmpty(turno))
                {
                    movCaja = resumenService.obtenerMovimientosCaja(caja, cajero, turno);
                }
            }

            return movCaja;
        }

        public ActionResult Boveda()
        {
            return View();
        }

    }
}
